iT邦幫忙

2023 iThome 鐵人賽

DAY 14
0
AI & Data

深度學習概念和應用(PyTorch)系列 第 14

DAY14 池化、填充、步長

  • 分享至 

  • xImage
  •  

池化層 Pooling

Pooling layer也可以叫做max pooling,池化層所做的就是取出區域內的最大值,這種做法可以降低雜訊的干擾,因為在訓練過程中,數字如果變大我們可以理解為找到特定特徵,因此我們透過池化層將這些相對重要的部分留下,或許能增加模型訓練的準確度。

填充Padding

在卷積過程中,每經過一層卷積輸出就會變小,但當我們對於輸入做處理,在外圍加上一圈皆為零的填充職,增加矩陣大小,如此一來,不但不會影響輸出值,連輸出的矩陣大小都不會有所改變。
我們可以用簡單的程式呈現經過卷積後而變小的張量。
在pytorch中,Conv1d預設的就是tensorflow的valid,也就是不會填充的。

import torch
input = torch.FloatTensor([[[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17]]])
conv = torch.nn.Conv1d(1,1,6,2) 
input.size()
input = torch.autograd.Variable(input)
input
output = conv(input)
output.size()

所以我們可以藉由這張輸出結果知道,輸出會因為卷積而變小
https://ithelp.ithome.com.tw/upload/images/20230929/20163187BsTJa2ZAlf.png

步長

由這張圖我們可以將步長理解為卷積層移動的距離,也更好理解為什麼會需要填充來維持輸出的大小。
https://ithelp.ithome.com.tw/upload/images/20230929/20163187qy6r7jM5aT.png


上一篇
DAY13 過度訓練 torch.nn
下一篇
DAY15常用的資料集(imageNet、cifar10、cifar100、mnist)
系列文
深度學習概念和應用(PyTorch)30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言